package cn.cqie.attendance.manager.dao;

import cn.cqie.attendance.manager.pojo.AdminStudent;
import cn.cqie.attendance.manager.pojo.AdminStudentSerch;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * @author 697
 * @date 2021/6/18 17:16
 */
@Mapper
public interface AdminStudentDao {

    /**
     * 根据班级ID查询该班级所有学生信息
     * @param classesId 班级ID
     * @return
     */
    List<AdminStudent> queryAllStudentByClassesId(@Param("classesId")Integer classesId);


    /**
     * 查询某个班级下的学生信息，可模糊查询 组合查询
     * @param adminStudentSerch

     * @return
     */
    List<AdminStudent> queryAllStudentByClassesIdByCombination(@Param("adminStudentSerch") AdminStudentSerch adminStudentSerch);


    /**
     * 根据班级ID查询班级信息
     * @param id 班级ID
     * @return
     */
    List<AdminStudent> queryClassesInfoById(@Param("id")Integer id);


    /**
     * 给某个班级添加学生
     * @param student 学生
     * @return
     */
    int addStudentToClasses(@Param("student") AdminStudent student);


    /**
     * 查询某个班级是否存在某个学生
     * @param adminStudent
     * @return
     */
    int queryStudentByClassIDAndStuNumber(@Param("adminStudent")AdminStudent adminStudent);


    /**
     * 修改某个班级的学生信息
     * @param student 学生
     * @param stuId 学生ID
     * @param classId 班级ID
     * @return
     */
    int updateStudentById(@Param("student")AdminStudent student,@Param("stuId")Integer stuId,@Param("classId")Integer classId);


    /**
     * 通过学生id批量删除(某个班级的)学生、支持批量删除(单独删除)
     * @param studentId
     * @return
     */
    int deleteStudentById(@Param("studentId") Integer studentId);

    /**
     * 设置组长
     * @param studentId
     * @param groupId
     * @return
     */
    int updateGroupLeaderByGroupId(@Param("studentId")Integer studentId,@Param("groupId")Integer groupId);
}
